/*
 * XMLTag.h
 *
 *  Created on: Jul 14, 2013
 *      Author: Dan
 */

#ifndef XMLTAG_H_
#define XMLTAG_H_

#include "XMLNode.h"

#include <iostream>
#include <list>
#include <iterator>
#include <stdexcept>
#include <vector>
#include <stdexcept>

namespace monkeyXML {

class XMLTag: public monkeyXML::XMLNode {
private:
	struct attrib {
		std::string label;
		std::string value;
	};
	std::string theTag;
	std::list<attrib> theAttributes;
public:
	virtual ~XMLTag();
	XMLTag(const std::string&, const std::vector<std::string>&,
			const std::vector<std::string>&) throw (std::length_error);
	XMLTag(const XMLTag&);
	std::string toString();
	std::string getTag();
	std::string readAttrib(const std::string&);
	XMLTag(const std::string& aTagWithAtts);
};

} /* namespace monkeyXML */
#endif /* XMLTAG_H_ */
